home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Purity / Purity #23 (1994-02-10)(Diesel)(DE)[WB].zip / Purity #23 (1994-02-10)(Diesel)(DE)[WB].adf / Tools / ToolGad.p < prev    next >
Text File  |  1994-01-20  |  10KB  |  285 lines

  1. UNIT ToolGad;
  2.  
  3. {$Projekt MyTools}
  4.  
  5. INTERFACE
  6.  
  7.   USES Intuition;
  8.  
  9.   PROCEDURE UniPrint(VAR win:p_Window; txt:STRING; c1,c2,x,y:INTEGER; shadow,
  10.                      center : BOOLEAN; tattr:p_TextAttr);
  11.  
  12.   PROCEDURE GetRadioButtonImage(VAR RBImage1, RBImage2 : Image);
  13.   PROCEDURE GetCheckBoxImage(VAR CBImage1, CBImage2 : Image);
  14.   PROCEDURE GetCycleImage(VAR CycleImage : Image);
  15.   PROCEDURE umrandung(wo:p_window,c1,c2,x,y,b,h:INTEGER);
  16.   PROCEDURE gbord(wo:p_window,was:p_gadget);
  17.   PROCEDURE zeichnetext(c1,c2:SHORT,wo:p_window,x,y:INTEGER,text:string);
  18.   PROCEDURE uline(wo:p_window,was:p_gadget,c:CHAR);
  19.   PROCEDURE gbu(wo:p_window,was:p_gadget,c:CHAR);
  20.   PROCEDURE stringumrandung(VAR wo:p_Window; gad:p_Gadget; c1,c2:Word);
  21.   PROCEDURE RefreshGadget(VAR wo:p_Window; was:p_Gadget; req:p_Requester);
  22.  
  23.  
  24. IMPLEMENTATION
  25.  
  26.   TYPE
  27.     ImageFeld  = ARRAY[1..22] OF LONG;
  28.     BImageFeld = ARRAY[1..18] OF LONG;
  29.     wImageFeld = ARRAY[1..16] OF LONG;
  30.  
  31.   VAR
  32.     Image1,Image2,wImage : Image;
  33.     ImageMapPtr1,
  34.     ImageMapPtr2         : ^ImageFeld;
  35.     BImage1,BImage2      : Image;
  36.     Buttonptr1,
  37.     Buttonptr2           : ^BImageFeld;
  38.     wImageMapPtr         : ^wImageFeld;
  39.  
  40.  
  41.   { "Die" Universal-Print-Prozedur schlechthin !! }
  42.  
  43.   PROCEDURE UniPrint;
  44.   VAR
  45.     it,it1 : IntuiText;
  46.     l : LONG;
  47.   BEGIN
  48.     it := IntuiText(c1,0,JAM1,1,1,tattr,txt,^it1);
  49.     it1 := IntuiText(c2,0,JAM1,0,0,tattr,txt,NIL);
  50.     l := IntuiTextLength(^it)+1;
  51.     IF center THEN x := (win^.Width-l) DIV 2;
  52.     IF shadow THEN PrintIText(win^.RPort,^it,x,y)
  53.     ELSE PrintIText(win^.RPort,^it1,x,y);
  54.   END;
  55.  
  56.   PROCEDURE Init_Image;
  57.   BEGIN
  58.     wImageMapPtr:=PTR(ALLOC_MEM(SizeOf(wImageFeld),2));
  59.     wImageMapPtr^:=wImageFeld(%00000111111100000000000000000000,
  60.                         %00001100000110000010000000000000,
  61.                         %00001100011111100010000000000000,
  62.                         %00001100001111000010000000000000,
  63.                         %00001100000110000010000000000000,
  64.                         %00001100000000000010000000000000,
  65.                         %00001100000110000010000000000000,
  66.                         %00000111111100000010000000000000,
  67.  
  68.    { 2. Bitplane }      %00000000000000000000000000000000,
  69.                         %00000000000000000001000000000000,
  70.                         %00000000000000000001000000000000,
  71.                         %00000000000000000001000000000000,
  72.                         %00000000000000000001000000000000,
  73.                         %00000000000000000001000000000000,
  74.                         %00000000000000000001000000000000,
  75.                         %00000000000000000001000000000000);
  76.  
  77.    wimage:=IMAGE(2,1,21,8,2,wImageMapPtr,3,0,NIL);
  78.    Buttonptr1:=PTR(ALLOC_MEM(SizeOf(BImageFeld),2));
  79.    Buttonptr1^:=BImageFeld(%00000000000000100000000000000000,
  80.                            %00000000000000110000000000000000,
  81.                            %00000000000000011000000000000000,
  82.                            %00000000000000011000000000000000,
  83.                            %00000000000000011000000000000000,
  84.                            %00000000000000011000000000000000,
  85.                            %00000000000000011000000000000000,
  86.                            %00000000000000110000000000000000,
  87.                            %00011111111111100000000000000000,
  88.  
  89.     { 2. Bitplane }      %00111111111111000000000000000000,
  90.                          %01100000000000000000000000000000,
  91.                          %11000000000000000000000000000000,
  92.                          %11000000000000000000000000000000,
  93.                          %11000000000000000000000000000000,
  94.                          %11000000000000000000000000000000,
  95.                          %11000000000000000000000000000000,
  96.                          %01100000000000000000000000000000,
  97.                          %00100000000000000000000000000000);
  98.  
  99.      Buttonptr2:=PTR(ALLOC_MEM(SizeOf(BImageFeld),2));
  100.      Buttonptr2^:=BImageFeld(%00111111111111000000000000000000,
  101.                              %01100000000000000000000000000000,
  102.                              %11000111111100000000000000000000,
  103.                              %11001111111110000000000000000000,
  104.                              %11001111111110000000000000000000,
  105.                              %11001111111110000000000000000000,
  106.                              %11000111111100000000000000000000,
  107.                              %01100000000000000000000000000000,
  108.                              %00100000000000000000000000000000,
  109.  
  110.     { 2. Bitplane }      %00000000000000100000000000000000,
  111.                          %00000000000000110000000000000000,
  112.                          %00000111111100011000000000000000,
  113.                          %00001111111110011000000000000000,
  114.                          %00001111111110011000000000000000,
  115.                          %00001111111110011000000000000000,
  116.                          %00000111111100011000000000000000,
  117.                          %00000000000000110000000000000000,
  118.                          %00011111111111100000000000000000);
  119.  
  120.     BImage1:=IMAGE(0,0,17,9,2,Buttonptr1,3,0,NIL);
  121.     BImage2:=IMAGE(0,0,17,9,2,Buttonptr2,3,0,NIL);
  122.  
  123.     ImageMapPtr1:=PTR(ALLOC_MEM(SizeOf(ImageFeld),2));
  124.     ImageMapPtr1^:=ImageFeld(%00000000000000000000000001000000,
  125.                         %00000000000000000000000011000000,
  126.                         %00000000000000000000000011000000,
  127.                         %00000000000000000000000011000000,
  128.                         %00000000000000000000000011000000,
  129.                         %00000000000000000000000011000000,
  130.                         %00000000000000000000000011000000,
  131.                         %00000000000000000000000011000000,
  132.                         %00000000000000000000000011000000,
  133.                         %00000000000000000000000011000000,
  134.                         %01111111111111111111111111000000,
  135.  
  136.    { 2. Bitplane }      %11111111111111111111111110000000,
  137.                         %11000000000000000000000000000000,
  138.                         %11000000000000000000000000000000,
  139.                         %11000000000000000000000000000000,
  140.                         %11000000000000000000000000000000,
  141.                         %11000000000000000000000000000000,
  142.                         %11000000000000000000000000000000,
  143.                         %11000000000000000000000000000000,
  144.                         %11000000000000000000000000000000,
  145.                         %11000000000000000000000000000000,
  146.                         %10000000000000000000000000000000);
  147.  
  148.     ImageMapPtr2:=PTR(ALLOC_MEM(SizeOf(ImageFeld),2));
  149.     ImageMapPtr2^:=ImageFeld(%00000000000000000000000001000000,
  150.                              %00000000000000000000000011000000,
  151.                              %00000000000000000111000011000000,
  152.                              %00000000000000001100000011000000,
  153.                              %00000000000000011000000011000000,
  154.                              %00000001110000110000000011000000,
  155.                              %00000000111001100000000011000000,
  156.                              %00000000011111000000000011000000,
  157.                              %00000000001110000000000011000000,
  158.                              %00000000000000000000000011000000,
  159.                              %01111111111111111111111111000000,
  160.  
  161.    { 2. Bitplane }           %11111111111111111111111110000000,
  162.                              %11000000000000000000000000000000,
  163.                              %11000000000000000000000000000000,
  164.                              %11000000000000000000000000000000,
  165.                              %11000000000000000000000000000000,
  166.                              %11000000000000000000000000000000,
  167.                              %11000000000000000000000000000000,
  168.                              %11000000000000000000000000000000,
  169.                              %11000000000000000000000000000000,
  170.                              %11000000000000000000000000000000,
  171.                              %10000000000000000000000000000000);
  172.  
  173.      image1:=IMAGE(0,0,26,11,2,ImageMapPtr1,3,0,NIL);
  174.      image2:=IMAGE(0,0,26,11,2,ImageMapPtr2,3,0,NIL);
  175.   END;
  176.  
  177.   PROCEDURE GetRadioButtonImage;
  178.   BEGIN
  179.     RBImage1 := BImage1;
  180.     RBImage2 := BImage2;
  181.   END;
  182.  
  183.   PROCEDURE GetCheckBoxImage;
  184.   BEGIN
  185.     CBImage1 := Image1;
  186.     CBImage2 := Image2;
  187.   END;
  188.  
  189.   PROCEDURE GetCycleImage;
  190.   BEGIN
  191.     CycleImage := wImage;
  192.   END;
  193.  
  194.   PROCEDURE umrandung;
  195.   TYPE
  196.     umrandungstyp=ARRAY[0..9] OF INTEGER;
  197.   VAR
  198.     Feld1,feld2:umrandungstyp;
  199.     border1,border2:BORDER;
  200.   BEGIN
  201.    feld1:=umrandungstyp(1,1,1,h-2,0,h-1,0,0,b-2,0);
  202.    feld2:=umrandungstyp(b-2,h-2,b-2,1,b-1,0,b-1,h-1,1,h-1);
  203.    Border1:=Border(x,y,c1,0,0,5,^Feld1,^Border2);
  204.    Border2:=Border(x,y,c2,0,0,5,^Feld2,Nil);
  205.    DrawBorder(wo^.rport,^Border1,0,0);
  206.   END;
  207.  
  208.   PROCEDURE gbord;
  209.   BEGIN
  210.     umrandung(wo,2,1,was^.Leftedge,was^.Topedge,was^.Width,was^.height);
  211.   END;
  212.  
  213.   PROCEDURE zeichnetext;
  214.   VAR
  215.     it1,it2:INTUITEXT;STATIC;
  216.   BEGIN
  217.     it1:=INTUITEXT(c1,0,JAM2,1,1,NIL,text,^it2);
  218.     it2:=INTUITEXT(c2,0,0,0,0,NIL,text,NIL );
  219.     PRINTITEXT(wo^.rport,^it1,x,y);
  220.   END;
  221.  
  222.   PROCEDURE uline;
  223.   VAR
  224.     it:intuitext;STATIC;
  225.     x,y:LONG;STATIC;
  226.     stelle:INTEGER;
  227.    BEGIN
  228.      IF was^.Gadgettext<> NIL THEN
  229.      BEGIN
  230.        stelle:=POS(c,was^.gadgettext^.itext);
  231.        If stelle>0 THEN
  232.        BEGIN
  233.          stelle:=stelle-1;
  234.          x:=was^.Gadgettext^.leftedge+was^.Leftedge+8*stelle;
  235.          y:=was^.Gadgettext^.topedge+was^.Topedge+1;
  236.          it:=INTUITEXT(1,0,0,0,0,NIL,'_',NIL );
  237.          PRINTITEXT(wo^.rport,^it,x,y);
  238.        END;
  239.      END;
  240.    END;
  241.  
  242.   PROCEDURE gbu;
  243.   BEGIN
  244.     gbord(wo,was);
  245.     uline(wo,was,c);
  246.   END;
  247.  
  248.   PROCEDURE stringumrandung;
  249.   VAR
  250.     x,y,b,h : INTEGER;
  251.   BEGIN
  252.    x := gad^.LeftEdge - 3;
  253.    y := gad^.TopEdge - 3;
  254.    b := gad^.Width + 3;
  255.    h := gad^.Height + 1;
  256.    umrandung(wo,c1,c2,x,y,b,h);
  257.    umrandung(wo,c2,c1,x-2,y-1,b+4,h+2);
  258.   END;
  259.  
  260.   PROCEDURE RefreshGadget;
  261.   VAR
  262.     g : p_Gadget;
  263.   BEGIN
  264.     g := was^.NextGadget;
  265.     was^.NextGadget := NIL;
  266.     RefreshGadgets(was,wo,req);
  267.     was^.NextGadget := g;
  268.   END;
  269.  
  270. BEGIN
  271.   Init_Image;
  272. END.
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.